Field of the Invention
The present invention relates generally to three-dimensional (3D) computer graphics and, more specifically, to improved voxelization of mesh representations.
Description of the Related Art
In the domain computer graphics, 3D objects are often represented by surface mesh representations, where a surface mesh consists of a set of connected geometry primitives, such as triangles or quadrilaterals. Applications for such 3D objects include animated characters in computer games or films, models for fabrication via a manufacturing process, and objects for printing via a 3D printer. When generating 3D objects for such applications, the mesh representation is converted to a volumetric model via a process referred to as voxelization. With voxelization, the volume represented by the 3D mesh representation is filled with unit volumes referred to as volumetric elements or voxels. After the 3D mesh representation has been voxelized into a volumetric model, the volumetric model can be animated, as in the case of a model that represents a character in a computer game or film. Alternatively, the volumetric model can be transferred to a manufacturer for fabrication or to a 3D printer for printing.
One drawback to the above approach for creating volumetric models is that the mesh representations, which are typically created via many modeling and editing operations, can contain numerous imperfections. Examples of imperfect mesh representations include, without limitation, mesh representations that are non-watertight or non-manifold, mesh representations with self-intersections or interior geometry, and mesh representations composed of multiple parts. When a mesh representation containing one or more of these imperfections is voxelized, the resulting volumetric model can have several gaps and voids. Further, the resulting volumetric model may not unambiguously define which voxels reside on the exterior of the model and which voxels reside on the interior of the model. Consequently, further operations performed on the volumetric model may fail. For example, fabricating or printing a 3D model with one material on the interior and a different material on the exterior cannot be performed on a volumetric model that lacks clearly defined interior and exterior boundaries. Likewise, some processes for automatically rigging, or embedding a skeleton into, an animated character cannot be performed on a volumetric model that lacks clearly defined interior and exterior boundaries.
Currently, when problems with a volumetric model are identified, the end-user must manually fix those problems before any further processing operations can be performed on the volumetric model. Such manual techniques are both time consuming and tedious, resulting in increased costs and delays.
As the foregoing illustrates, what is needed are more effective ways to voxelize a mesh representation into a volumetric model.